# https://www.bilibili.com/video/BV1W7411G7wP?p=24&spm_id_from=pageDriver&vd_source=8bd7b24b38e3e12c558d839b352b32f4
# 24. 数据分析师真能预测未来（线性回归、数据预测）
import pandas as pd
import matplotlib.pyplot as plt
from scipy.stats import linregress

sales = pd.read_excel('../resources/input_py_tools/024/Sales.xlsx', dtype={'Month':str})
print(sales)

# 趋势线
slope, intercept, r, p, std_err = linregress(sales.index, sales.Revenue)
exp = sales.index * slope + intercept
# 预测2019.01
print(slope * 25 + intercept)
# 预测2019.12
print(slope * 36 + intercept)

# 绘图
plt.scatter(sales.index, sales.Revenue)
# 趋势线
plt.plot(sales.index, exp, color='orange')
# 柱状图
#plt.title("Sales")
plt.title(f"y={slope}*x+{intercept}")
plt.xticks(sales.index, sales.Month, rotation=90)
plt.tight_layout()
plt.show()

